import Vue from 'vue'
//1.导入vuex
import Vuex from 'vuex'
//2.注册vuex
Vue.use(Vuex)
//3.实例化vuex
export default new Vuex.Store({
  state: {//负责存储数据
    TastList:[],
  },
  getters: {//定义计算方法（类似于组件中的计算属性）
    unFinish(state) {
      var arr = state.TastList.filter((item) => {
        return item.status == false;
      })
      return arr.length;
    }
  },
  mutations: {//定义同步方法  特点：同步方法可以直接修改state中的数据
    addTast(state,payload) {
      if (payload) {
        var obj = { id: state.TastList.length + 1, name: payload, status: false };
        state.TastList.push(obj);
        payload = "";
      }
    },
    change(state,payload) {
      var fi =state.TastList.find((item)=>{
        return item.id == payload.id
      })
      if( fi ){ 
        fi.status = !fi.status;
      }
    },
    del(state,payload) {
      state.TastList.splice(payload, 1);
    }
  },
  actions: {//定义异步方法  特点：异步方法内部可以书写内部代码[ajax，定时器，事件监听],但是如果想要修改state中的数据必须间接调用同步方法执行修改

  },
  modules: {//分模块管理state中的数据
  },
  plugins: []//配合其他插件管理state中的数据
})
